<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>牛牛&amp;blog</title><meta name="author" content="牛牛"><meta name="copyright" content="牛牛"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="牛牛&amp;blog">
<meta property="og:url" content="https://code-ran.gitee.io/page/4/index.html">
<meta property="og:site_name" content="牛牛&amp;blog">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://code-ran.gitee.io/img/ys.jpg">
<meta property="article:author" content="牛牛">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://code-ran.gitee.io/img/ys.jpg"><link rel="shortcut icon" href="/img/myfavicon.png"><link rel="canonical" href="https://code-ran.gitee.io/page/4/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: undefined,
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: undefined,
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false,
  percent: {
    toc: true,
    rightside: false,
  }
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '牛牛&blog',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2024-04-30 11:53:34'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><link rel="stylesheet" href="/css/style.css"><meta name="generator" content="Hexo 5.4.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><script>const preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',()=> { preloader.endLoading() })

if (false) {
  document.addEventListener('pjax:send', () => { preloader.initLoading() })
  document.addEventListener('pjax:complete', () => { preloader.endLoading() })
}</script><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/ys.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">52</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">26</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">26</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/homepage2.png')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">牛牛&amp;blog</a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">牛牛&amp;blog</h1><div id="site-subtitle"><span id="subtitle"></span></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/java%E6%B3%9B%E5%9E%8B/" title="java泛型">java泛型</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:32:14.000Z" title="发表于 2022-11-23 15:32:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/java%E7%9B%B8%E5%85%B3/">java相关</a></span></div><div class="content">java泛型1、泛型类使用了泛型定义的类就是泛型类    泛型类的格式：修饰符 class 类名&lt;泛型变量&gt;&#123;        &#125;泛型变量建议使用 E , T , K , V泛型类的核心思想：是把出现泛型变量的地方全部替换成传输的真实数据类型。

public class GenericDemo &#123;    public static void main(String[] args) &#123;        MyArrayList&lt;String&gt; lists = new MyArrayList&lt;String&gt;();        MyArrayList&lt;String&gt; lists1 = new MyArrayList&lt;&gt;();        lists1.add(&quot;java&quot;);        lists1.add(&quot;mysql&quot;);        lists1.remove(&quot;java&quot;);        System.out.prin ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/Arrays-asList%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3/" title="Arrays.asList方法">Arrays.asList方法</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/java%E7%9B%B8%E5%85%B3/">java相关</a></span></div><div class="content">Java Arrays.asList()方法详解1、使用该方法可以将一个变长参数或者数组转换成List
2、存在的问题：
（1）基本类型数组作为参数的情况：
public class ArraysAsListTest &#123;		public static void main(String[] args) &#123;				int[] a = &#123;1,2,3&#125;;		Integer[] b = &#123;1,2,3&#125;;				List listA = Arrays.asList(a);		List listA1 = Arrays.asList(1,2,3);		List listB = Arrays.asList(b);				System.out.println(listA.size());//out:1		System.out.println(listA1.size());//out:3		System.out.println(listB.size());//out:3	&#125;&#125;

用int类型的数组作为参数为什么输出size是1， ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/Mybatis%E4%B8%ADCDATA%E7%9A%84%E4%BD%BF%E7%94%A8/" title="Mybatis中 &lt;![CDATA[ ]]&gt; 的使用">Mybatis中 &lt;![CDATA[ ]]&gt; 的使用</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MyBatis%E7%9B%B8%E5%85%B3/">MyBatis相关</a></span></div><div class="content">Mybatis中  的使用Mybatis的sql是写在xml映射文件中的，如果sql中有一些特殊的字符，在解析xml文件的时候会被转义，使用&lt;![CDATA[ ]]&gt;就可以让这些特殊字符不被转义。&lt;![CDATA[ ]]&gt;是xml的语法，放在CDATA[]内部的特殊字符都会被解析器忽略，所以在我们使用&lt;if test=&quot;&quot;&gt;、&lt;/if&gt;、&lt;where&gt;、&lt;/where&gt;、&lt;choose&gt;、&lt;/choose&gt;、&lt;trim&gt;、&lt;/trim&gt;等标签实现动态sql时，我们需要把sql语句中出现的&lt;、&lt;=、&amp;等特殊符号都放在CDATA[]的内部

&lt;update id=&quot;delData&quot; parameterType=&quot;com.hx.pojo.BrowsingHistory&quot;&gt;    update td_browsing_history set status = &#x27;9&#x27; ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/java8Stream%E8%AF%A6%E8%A7%A3/" title="java8Stream详解">java8Stream详解</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/java8%E7%9B%B8%E5%85%B3/">java8相关</a></span></div><div class="content">JDK8 Stream详解概念
Stream是Java8 API的新成员，它允许以声明性方式处理数据集合 。

特点
（1）代码简洁：函数式编程写出的代码简洁且意图明确，使用stream接口让你从此告别for循环。 
（2）多核友好：Java函数式编程使得编写并行程序从未如此简单，你需要的全部就是调用一下方法。 

流程1）第一步：把集合转换为流stream2）第二步：操作stream流stream流在管道中经过中间操作（intermediate operation）的处理，最后由最终操作(terminal operation)得到前面处理的结果

操作符
两种：中间操作符、终止操作符

中间操作符


流方法
含义
示例



filter
用于通过设置的条件过滤出元素
List strings = Arrays.asList(“abc”, “”, “bc”, “efg”, “abcd”,””, “jkl”);List filtered = strings.stream().filter(string -&gt; !string.isEmpty()).collect(Collecto ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/java8%E9%9B%86%E5%90%88%E4%B9%8B%E9%97%B4%E7%9A%84%E6%AF%94%E8%BE%83/" title="java8集合之间的比较">java8集合之间的比较</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/java%E7%9B%B8%E5%85%B3/">java相关</a></span></div><div class="content">java两个集合之间的比较-java8流式写法1、ListUtils.javapackage org.example;import java.util.List;import java.util.stream.Collectors;/** * @ClassName &amp;&#123;NAME&#125; * @Description ListUtils * @Author code-ran * @Date 2022/6/6 08:54 * @Version1.0 */public class ListUtils &#123;    //A 和 B 都有    public static List&lt;String&gt; overlapA(List&lt;String&gt; listA, List&lt;String&gt; listB) &#123;        //交集        List&lt;String&gt; collect1 = listA.stream().filter(num -&gt; listB.contains(num))              ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/java%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%A4%E7%A9%BA/" title="java字符串判空">java字符串判空</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/java%E7%9B%B8%E5%85%B3/">java相关</a></span></div><div class="content">java中对字符串进行判空操作方法一: 最多人使用的一个方法, 但效率很低:if(s == null || s.equals(&quot;&quot;));

方法二: 比较字符串长度, 效率高：if(s == null || s.length() == 0);

方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.if(s == null || s.isEmpty());

方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:if (s == null || s == &quot;&quot;);

使用equal（）方法需要先进行判断目标比对对象的类型，然后再进行其它操作，同时还要遍历String对象的每一个char，查看是否相同，而length（）直接返回String对象的Count属性，效率更高。
推荐使用if(null == s || s.length()==0)//或者if(null == s || &quot;&quot;.equals(s))

这种写法，像s.equals( ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/linux/" title="linux指令收集">linux指令收集</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/linux%E7%9B%B8%E5%85%B3/">linux相关</a></span></div><div class="content">cd 切换目录cd ../回到上一级目录ls 列出当前目录下的所有文件./ 运行shell脚本程序rm 移除该目录下的某个文件rmdir 移除该目录下的某个文件夹mkdir 用来创建文件夹(目录)mv 用来对文件或者目录进行重新命名cat 查看该目录下的文件内容信息

ps -ef | grep java 查看系统中正在运行的java进程nohup 将程序以忽略挂起信号的方式运行起来find 在指定目录下查找文件hostname 显示当前主机的十六进制数字标识kill -9  端口号  杀掉某个进程more 显示文件内容，每次显示一屏ping 测试主机之间网络的连通性pkill 可以按照进程名杀死进程

let 简单的计算器，执行算数表达式locate 比find更好用的文件查找工具logname 打印当前终端登录用户的名称logsave 将命令的输出信息保存到指定的日志文件man 查看linux中的指令帮助pmap 报告进程的内存映射关系popd 从目录堆栈中删除目录pr 将文本文件转换成适合打印的格式sort 对文本文件中的所有行进行排序

source 在当前shell环境中从指 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/mybatis%E5%85%A8%E5%8A%A8%E6%80%81%E6%8F%92%E5%85%A5/" title="MyBatis全动态插入">MyBatis全动态插入</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MyBatis%E7%9B%B8%E5%85%B3/">MyBatis相关</a></span></div><div class="content">MyBatis—全动态插入场景一:1、当后端查询的字段数量不确定时，即所查询的字段是来自某个表的某个字段相应的值时。这时我们就无法通过构造实体的方式，接收数据库查出的每个字段对应的数据。这时候我们可以使用:
List&lt;Map&lt;String,Object&gt;&gt;

这样的数据结构去接收后端查询出的数据。
 Map&lt;String,Object&gt;中对应的键是：查出的对应字段，value值对应的是查出的每个字段对应的数据；

这时候在mapper接口中需要使用@MapKey(“id”)注解去设定对应的键，最好是主键，resultType返回的是:一个Map;
值得注意的是，通过**@MapKey**注解返回的Map，其key的类型和指定的字段类型是一致的。
例如：指定id作为Map的key,id为int类型，那么该Map的key也为integer类型，如果你通过String类型的key去获取value，则获取不到。
@MapKey(&quot;id&quot;)List&lt;Map&lt;String, Object&gt;&gt; selectChartDa ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/springboot%E8%AF%BB%E5%8F%96yml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/" title="springboot读取yml配置文件的几种方式">springboot读取yml配置文件的几种方式</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/springboot%E7%9B%B8%E5%85%B3/">springboot相关</a></span></div><div class="content">1、springboot读取yml配置文件的几种方式:一、yml文件YAML语法基本介绍1、以缩进代表层级关系2、缩进不能使用tab，只能用空格3、空格个数不重要，但是同一层级必须左对齐4、大小写敏感5、数据格式为，名称:(空格)值6、注释单行用#，只能注释单行



各类数据书写形式：1、数字，字符串，布尔等# key: value形式name: zsage: 20enable: true

2、数组，集合（List，Set）# 方式一：换行缩进，使用-表示一个元素（常用）# 如Java bean中的List&lt;String&gt; tels 或者 String[] telstels:   - 110  - 120# List&lt;Users&gt; usersusers:   - name: zs    age: 20  - name: ls    age: 30# 方式二：单行配置tels: 110, 120users: &#123;name: zs, age: 20&#125;, &#123;name: ls, age: 30&#125;

3、Map和对象# 方式一：多 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2022/11/23/springboot%E8%AF%BB%E5%8F%96%E9%A1%B9%E7%9B%AE%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6/" title="springboot读取项目下的文件">springboot读取项目下的文件</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2022-11-23T07:28:14.000Z" title="发表于 2022-11-23 15:28:14">2022-11-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/springboot%E7%9B%B8%E5%85%B3/">springboot相关</a></span></div><div class="content">springboot读取项目下的文件1、方式一：
File jsonFile = ResourceUtils.getFile(&quot;classpath:static/data.json&quot;);//数据读取String json = FileUtils.readFileToString(jsonFile);

方式二新建一个 Service 类 JsonUtilService
@Servicepublic class JsonUtilService &#123;@Value(&quot;classpath:static/data.json&quot;)public Resource resource; public String getData()&#123;    try &#123;        File file = resource.getFile();        String jsonData = this.jsonRead(file);        return jsonData;    &#125; catch (Exception e) &#123; ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/page/3/#content-inner"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/3/#content-inner">3</a><span class="page-number current">4</span><a class="page-number" href="/page/5/#content-inner">5</a><a class="page-number" href="/page/6/#content-inner">6</a><a class="extend next" rel="next" href="/page/5/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/ys.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">牛牛</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">52</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">26</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">26</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/code-ran"><i class="fab fa-github"></i><span>Follow Me</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">本blog内容仅用于个人学习使用!</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/04/30/springboot%E6%B3%A8%E8%A7%A3%E7%9B%B8%E5%85%B3/" title="springboot注解相关">springboot注解相关</a><time datetime="2024-04-30T03:20:37.000Z" title="发表于 2024-04-30 11:20:37">2024-04-30</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/04/30/CommandLineRunner%E5%92%8CApplicationRunner%E7%94%A8%E6%B3%95%E4%B8%8E%E5%8C%BA%E5%88%AB/" title="CommandLineRunner和ApplicationRunner用法与区别">CommandLineRunner和ApplicationRunner用法与区别</a><time datetime="2024-04-30T02:42:21.000Z" title="发表于 2024-04-30 10:42:21">2024-04-30</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/08/%E5%A5%BD%E6%96%87%E6%94%B6%E8%97%8F/" title="好文收藏">好文收藏</a><time datetime="2023-12-08T08:40:13.000Z" title="发表于 2023-12-08 16:40:13">2023-12-08</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/08/springboot%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/" title="springboot文件上传下载">springboot文件上传下载</a><time datetime="2023-12-08T03:30:54.000Z" title="发表于 2023-12-08 11:30:54">2023-12-08</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/05/linux%E4%BD%BF%E7%94%A8curl%E5%91%BD%E4%BB%A4%E5%8F%91%E9%80%81%E8%AF%B7%E6%B1%82/" title="linux使用curl命令发送请求">linux使用curl命令发送请求</a><time datetime="2023-12-05T05:56:19.000Z" title="发表于 2023-12-05 13:56:19">2023-12-05</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
            <i class="fas fa-folder-open"></i>
            <span>分类</span>
            <a class="card-more-btn" href="/categories/" title="查看更多">
    <i class="fas fa-angle-right"></i></a>
            </div>
            <ul class="card-category-list" id="aside-cat-list">
            <li class="card-category-list-item "><a class="card-category-list-link" href="/categories/MyBatis%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">MyBatis相关</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/WebService/"><span class="card-category-list-name">WebService</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/curl%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">curl相关</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/echarts%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">echarts相关</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/eclipse%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">eclipse相关</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/element-ui%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">element-ui相关</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/elementui%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">elementui相关</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/git%E7%9B%B8%E5%85%B3/"><span class="card-category-list-name">git相关</span><span class="card-category-list-count">1</span></a></li>
            </ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/MyBatis/" style="font-size: 1.26em; color: #999fa8">MyBatis</a> <a href="/tags/WebService%E7%9B%B8%E5%85%B3/" style="font-size: 1.1em; color: #999">WebService相关</a> <a href="/tags/curl/" style="font-size: 1.1em; color: #999">curl</a> <a href="/tags/echarts/" style="font-size: 1.1em; color: #999">echarts</a> <a href="/tags/eclipse/" style="font-size: 1.1em; color: #999">eclipse</a> <a href="/tags/element-ui/" style="font-size: 1.18em; color: #999ca1">element-ui</a> <a href="/tags/elementui/" style="font-size: 1.1em; color: #999">elementui</a> <a href="/tags/git/" style="font-size: 1.1em; color: #999">git</a> <a href="/tags/hexo/" style="font-size: 1.34em; color: #99a3b0">hexo</a> <a href="/tags/hutool/" style="font-size: 1.1em; color: #999">hutool</a> <a href="/tags/java/" style="font-size: 1.5em; color: #99a9bf">java</a> <a href="/tags/java-IO/" style="font-size: 1.1em; color: #999">java(IO)</a> <a href="/tags/java8/" style="font-size: 1.26em; color: #999fa8">java8</a> <a href="/tags/javascript/" style="font-size: 1.1em; color: #999">javascript</a> <a href="/tags/jdk-tomcat/" style="font-size: 1.1em; color: #999">jdk/tomcat</a> <a href="/tags/linux/" style="font-size: 1.18em; color: #999ca1">linux</a> <a href="/tags/maven/" style="font-size: 1.1em; color: #999">maven</a> <a href="/tags/myPath/" style="font-size: 1.1em; color: #999">myPath</a> <a href="/tags/mysql%E5%AD%A6%E4%B9%A0/" style="font-size: 1.1em; color: #999">mysql学习</a> <a href="/tags/nacos/" style="font-size: 1.18em; color: #999ca1">nacos</a> <a href="/tags/poi/" style="font-size: 1.1em; color: #999">poi</a> <a href="/tags/redis/" style="font-size: 1.1em; color: #999">redis</a> <a href="/tags/springboot/" style="font-size: 1.42em; color: #99a6b7">springboot</a> <a href="/tags/sql/" style="font-size: 1.18em; color: #999ca1">sql</a> <a href="/tags/vue/" style="font-size: 1.26em; color: #999fa8">vue</a> <a href="/tags/%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/" style="font-size: 1.1em; color: #999">文件上传下载</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
    <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/04/"><span class="card-archive-list-date">四月 2024</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/12/"><span class="card-archive-list-date">十二月 2023</span><span class="card-archive-list-count">3</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/11/"><span class="card-archive-list-date">十一月 2023</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/07/"><span class="card-archive-list-date">七月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/06/"><span class="card-archive-list-date">六月 2023</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/03/"><span class="card-archive-list-date">三月 2023</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/02/"><span class="card-archive-list-date">二月 2023</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/01/"><span class="card-archive-list-date">一月 2023</span><span class="card-archive-list-count">1</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">52</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2021-06-30T16:00:00.000Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2024-04-30T03:53:33.934Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2021 - 2024 By 牛牛</div><div class="footer_custom_text">Hi, Welcome to my blog!</div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">簡</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><div class="js-pjax"><script>function subtitleType () {
  if (true) { 
    window.typed = new Typed("#subtitle", {
      strings: ["不积跬步无以至千里，不积小流无以成江海。"],
      startDelay: 300,
      typeSpeed: 150,
      loop: true,
      backSpeed: 50
    })
  } else {
    document.getElementById("subtitle").innerHTML = '不积跬步无以至千里，不积小流无以成江海。'
  }
}

if (true) {
  if (typeof Typed === 'function') {
    subtitleType()
  } else {
    getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
  }
} else {
  subtitleType()
}</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>